package com.springboot.study.controller;// 定义包名，通常对应项目的目录结构，这里表示controller层
import com.springboot.study.producer.SimpleProducer;// 导入自定义的消息生产者类 SimpleProducer，用于发送消息
import org.springframework.web.bind.annotation.GetMapping;// 导入 Spring 注解 @GetMapping，用于映射 HTTP GET 请求
import org.springframework.web.bind.annotation.RequestParam;// 导入 Spring 注解 @RequestParam，用于接收请求参数
import org.springframework.web.bind.annotation.RestController;// 导入 Spring 注解 @RestController，表示该类是一个 REST 控制器
@RestController
// 标注这是一个 REST 控制器类，返回的都是 JSON 或字符串，不需要视图解析
public class TestController {
    private final SimpleProducer producer;
    // 定义一个 SimpleProducer 类型的成员变量，用于发送消息
    // 使用 final 修饰，表示该变量在初始化后不可修改
    public TestController(SimpleProducer producer) {
        // 构造函数注入 SimpleProducer 实例
        this.producer = producer;
        // 将传入的 producer 赋值给成员变量
    }
    @GetMapping("/send")// 映射 HTTP GET 请求到 /send 路径，当访问 /send 时会调用下面的方法
    public String send(@RequestParam String msg) {
        // 定义 send 方法，接收请求参数 msg
        // @RequestParam 注解表示从请求 URL 中获取名为 msg 的参数，例如 /send?msg=hello
        producer.sendMessage(msg);// 调用 SimpleProducer 的 sendMessage 方法，将消息发送出去
        return "消息已发送: " + msg;// 返回响应字符串，提示消息已发送成功
    }
}
